import * as bcrypt from 'bcrypt'

/**
 * 密码加密
 * @param password 原始密码
 * @returns 加密后的密码
 */
export async function hashPassword(password: string): Promise<string> {
  const saltRounds = 12
  return await bcrypt.hash(password, saltRounds)
}

/**
 * 密码验证
 * @param password 原始密码
 * @param hashedPassword 加密后的密码
 * @returns 是否匹配
 */
export async function verifyPassword(password: string, hashedPassword: string): Promise<boolean> {
  return await bcrypt.compare(password, hashedPassword)
}

/**
 * 生成指定密码的哈希值（用于初始化数据）
 * @param password 原始密码
 * @returns 加密后的密码
 */
export async function generatePasswordHash(password: string): Promise<string> {
  return await hashPassword(password)
}
